#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

using namespace std;

// void handler(int singo)
// {
//     cout<<"17号信号被捕捉"<<endl;
// }
int main()
{
    // signal(SIGCHLD,handler);
    pid_t id=fork();
    if( id == 0)
    {
        cout<<"我是子进程"<<endl;
        exit(1);
    }
    while(true)
    {
        cout<<"我是父进程"<<endl;
        int status=0;
        waitpid(id,&status,0);
        printf("子进程退出，父进程收到信号：%d\n",status&0x7F);
        sleep(1);
    }
    return 0;
}
// int quit=0;

// void handler(int signo)
// {
//     cout<<"change quit from 0 to 1"<<endl;
//     quit = 1;
// }
// int main()
// {
//     signal(2,handler);
//     while(!quit)
//     {
//         cout<<"退出:"<<quit<<endl;
//     }
//     return 0;
// }